Eye diagrams are a conventional format for representing parametric information about signals, and especially digital signals. We shall refer to an item of test equipment or a measurement circuit arrangement that creates an eye diagram as an eye diagram tester, whether it is found in an oscilloscope, a BERT (Bit Error Rate Tester), a logic analyzer, or, as a separate item of test equipment. ""Scopes and BERTs each have their own inherent (and different) types of circuit architecture that they use to create eye diagrams, and thus belong to the class of Eye Diagram Testers. The preferred method (and by implication, any corresponding circuit apparatus) to be disclosed herein is that of the incorporated Application, is different than those used in ""scopes and BERTs, and is especially suitable for use within a logic analyzer, as well as an item of stand-alone test equipment. We shall call this different method (and any corresponding circuit apparatus) an Eye Diagram Analyzer, or EDA for short. By the definitions above, an EDA is a particular type of eye diagram tester.
A modern eye diagram for a digital signal is not so much a trace formed continuously in the time domain, as it is an xe2x80x9ceyexe2x80x9d shape composed of closely spaced points (displayed dots, or illuminated pixels) representing many (probably at least thousands, easily millions, and perhaps orders of magnitude more) individual measurement samples taken upon separate instances of a signal occurring on a channel of interest. Each measurement sample contributes to a displayed dot. To borrow an idea from the world of analog oscilloscopes, it is as though an infinite persistence continuous time domain trace (for the signal of interest) were cut apart into lengths corresponding to one, five or ten clock times, and then stacked on top of each other. In the sampled digital case however, portions of the eye shape only appear continuous because the collection of dots is rather dense, owing to the large number of times that the signal is sampled. Unlike a true continuous technique, however, there may be detached dots that are separated from the main body of the eye shape. In any event, the vertical axis is voltage, and the horizontal axis represents the differences in time (i.e., various offsets) between some reference event and the locations for the measurement samples. The reference event is generally an edge of a clock signal in the system under test, represents directly or through some fixed delay the expected point in time when the value of an applied data signal would be captured by some receiving circuit in an SUT (System Under Test), and is derived from an application of the SUT""s clock to the Eye Diagram Analyzer. The time axis will generally have enough length to depict one complete eye-shape (cycle of a DUT signal) centered about the reference, with sometimes perhaps several additional eyes (cycles) before and after. In general, the number of cycles shown depends upon how the measurement is set up, and could be more than several.
While not forgetting that oscilloscopes and Bit Error Rate Testers each have their own measurement paradigms, it will be useful for us briefly consider how the particular technique of interest to us operates. Different (X, Y) regions of an eye diagram represent different combinations of time and voltage. Assume that the eye diagram is composed of a number of pixels, and temporarily assume that the resolution is such that each different (X, Y) pixel position can represent a different combination of time and voltage (and vice versa), which combinations of time and voltage we shall term xe2x80x9cmeasurement points.xe2x80x9d What the analyzer measures is the number of times, out a counted number of clock cycles, that the signal on the channel being monitored passed through a selected measurement point. Then another measurement point is selected, and the process repeated until there are enough measurement points for all the pixels needed for the display. The range over which the measurement points are varied is called a xe2x80x9csample spacexe2x80x9d and is defined during a measurement set-up operation. And in reality, we define the sample space and the resolution for neighboring measurement points first, start the measurement and then figure out later how to ascribe values to the pixels of the display. The xe2x80x9cdisplayxe2x80x9d is, of course, an arbitrary graphic output device such as a printer or an X Window of some as yet unknown size in a window manager (e.g., X11) for a computer operating system. (The one-to-one correspondence between display pixels and measurement points we assumed at the start of this paragraph was just a convenient simplification for ease of explanation. It will be appreciated that it is conventional for display systems, such as X Windows, to xe2x80x9c. . . figure out . . . how to ascribe values to the pixels . . . xe2x80x9d when the correspondence is not one-to-one.)
The substance of an eye diagram, then is that it represents various combinations of circumstances that occurred in the data signal being characterized by the Eye Diagram Analyzer. However, the eye diagram trace itself is not a single time domain waveform (think: xe2x80x98single valued functionxe2x80x99), but is instead an accumulation of many such instances; it can present multiple voltage (Y axis) values for a given time value (X axis). So, for example, the upper left-hand region of an eye might represent the combination of an adequate logical one at an adequately early time relative to the SUT""s clock signal, and an eye diagram whose trace passes robustly through that region indicates to us that a signal of interest is generally achieving a proper onset of voltage at a proper time. Furthermore, we note that there are also other regions, say, near the center of an eye, that are not ordinarily transited by the trace, and which if that were indeed to happen, would presumably be an indication of trouble. Thickening of the traces is indicative of jitter, a rounding of a corner is indicative of slow transitions, and so on. An eye diagram by itself cannot reveal in the time domain which isolated instance of the signal caused such an exception, as other types of measurements might, but it does provide timely and valid information about signal integrity within a system as it operates. In particular, by incorporating very long (perhaps xe2x80x9cinfinitexe2x80x9d) persistence the eye diagram presents readily seen evidence of occasional or infrequently occurring failures.
An eye diagram, then, is information about signal behavior at various time-voltage (X, Y) combinations. A simple system would be to indicate that the signal was xe2x80x9ctherexe2x80x9d or that it wasn""t. That is, respectively put either an illuminated pixel or a non-illuminated pixel at the various (X, Y) locations for the different instances of xe2x80x9cthere.xe2x80x9d This is about what an analog oscilloscope would do if it were used to create an eye diagram for some signal. However, we would notice that some parts of the trace were brighter than others, and understand that this is a (somewhat useful) artifact caused by finite persistence on the one hand (old stuff goes away) and relative rates of occurrence on the other. That is, the display ends up having an intensity component at each pixel location. This is fine as far as it goes, but we would rather not rely upon the persistence of phosphor for this effect, since the most interesting indications are apt to be also the faintest. Since we are not using an analog ""scope, anyway, and have an instrument (an EDA) with memory (akin to a digital oscilloscope, timing analyzer or logic analyzer), we can gather data and decide after the fact what pixel value is to go with each (X, Y) pixel location. Those pixel values can be variations in color, intensity, or both, according to whatever scheme is in use (and there are several). The general idea is that the operator configures the EDA to render the display in a way that makes the condition he is most interested is quite visible, and also such that the eye diagram as a whole is generally easy to interpret. Thus, the reader is reminded that there is usually more going on than simply the presence or absence of dots at some series of (X, Y) locations, and that we often have recourse to the notion of a xe2x80x9cpixel valuexe2x80x9d at some (X, Y) position in the display. We shall denote with the symbol xe2x80x9cVxe2x80x9d whatever that xe2x80x9cpixel valuexe2x80x9d is. V might be a single item, such as xe2x80x9cONxe2x80x9d or xe2x80x9cOFFxe2x80x9d or it might be an intensity without the notion of color. On the other hand, V will often expand into a whole series of parameters VR, VG, VB, . . . , where each such parameter represents the intensity of an associated color. In any event, we shall simply write (X, Y, V)I or perhaps (Xi, Yi, Vi), depending upon which notation seems to work best for our needs at the time, and not bother to indicate any associated further expansion of a Vi into its component parameters VR, VG, VB.
It is often the case that the utility of an eye diagram is needed for characterizing or discovering circumstances that are both erroneous and very occasional. It is also the case that some SUTs have a great many channels that are subject to investigation. Some busses have hundreds of member signals, for example. When faced with such circumstances, the xe2x80x9cluxuryxe2x80x9d of having one individual eye diagram trace per SUT signal becomes an oppressive burden. We might measure it that way, and we can indeed display it that way (with four or maybe eight channels at a time), but we likely will have lost all patience and become disgusted with the whole process before we complete looking at twenty-five or more sets of four or more traces each. Surely that is the wrong way to go about analyzing the data! But on the other hand, automating the investigation is risky. Masking measurements, for example, essentially require that we formally decide ahead of time what is not of interest. The analyzer can apply the mask for us automatically and at great speed, but we will never know for sure that there was not some irregularity in there that met the mask criteria, and yet that would have been of interest to us anyway, if we had only seen it.
Accordingly, another tool is needed to assist in eye diagram analysis for situations involving a large number of channels. What to do?
The needed tool is to merge into one combined eye diagram presentation the data of separate xe2x80x9ccomponentxe2x80x9d eye diagram measurements for a useful grouping of related signals. Perhaps this is as simple as taking all the signals together as one single group and producing a single combined eye diagram from the merged data. Say, for example, each separate signal would produce an eye diagram of the same general shape as the other. Then we might simply combine them as if they were being stacked on top of one another, so to speak. That is, create a resulting eye diagram that is the superposition of the component eye diagrams. (The user of a ""scope might approximate such an outcome by adjustment of vertical position controls to superimpose separate traces.) Alternatively, the signals of interest might, for timing or other signal format reasons, be construed as being of some family in one group and of a different family in another group, and then individually considering the resulting two such separate combined eye diagrams, each of which corresponds to one of the groups. In any event, the operator can instruct the EDA to merge the data of individual eye diagrams for a specified plurality (family) of signals into one combined eye diagram. (However, we are going to combine arithmetic values for the sampled component data, and not mess with any notion of adjusting vertical position!) So now we have a combined eye diagram that probably has fat traces (indicating that, as expected, not all signals have simultaneous and identical rise times, voltage levels, etc.). Independent of that, we now expect that, having merged everything together, if there is something unusual going on, even if only occasionally for just one channel, we will, in principle, be able to see it. (Assuming, of course, that we do not implement some notion of short persistence.) Another assumption in this description is that the collection of data points comprising each of the component eye diagrams has the same general meaning, or type of rule for interpretation, as do the collections of data points in each of the other component eye diagrams.
We shall term such a combined eye diagram, created from the merging of data for individual component eye diagrams, a xe2x80x9ccompositexe2x80x9d eye diagram.
In particular, then, an eye diagram analyzer can assign a plurality of SUT data signals to be members of a labeled group of channels for an eye diagram analyzer. There may be a plurality of such groups. In addition to a superposition in an (X, Y) display space of the various i-many (X, Y, V)-valued pixels for individual component eye diagrams associated with that group, other measured data for those pixels within a group can be merged in either of two different modes to produce corresponding composite eye diagram presentations. A central issue is to decide how to combine Vi from one component eye diagram with the corresponding Vi of another component eye diagram. They are combined to produce a xe2x80x9cdensityxe2x80x9d D of some sort. In a Normalized Signal Density Mode the number of hits at each measurement point is summed over all channels in the group, and then divided by the total number of clock cycles measured for the ith measurement point in that group to produce a measure Normalized Signal Density (NSDi) associated with the corresponding ith pixel: (Xi, Yi, NSDi). The notation (Xi, Yi, NSDi) is perhaps awkward, and we can instead use simply (X, Y, D)I so long as we remember that D is Normalized Signal Density. If Di is rendered as a color or an intensity, the resulting eye diagram includes a representation (the Di) of an adjusted, or normalized, density of transitions at each point (Xi, Yi), relative to that group as a whole. In an Average Signal Density Mode the number of hits at each measurement point for a signal is divided by the total number of clock cycles measured for the ith measurement point on that signal in the group, and those fractions are summed and then divided by the number of channels in the group, to produce a measure D=Average Signal Density (ASDi) associated with the corresponding ith pixel: (Xi, Yi, Di), where Di=ASDi. If Di is rendered as a color or an intensity, the resulting eye diagram includes a representation (the Di) of the average density of transitions at each point (Xi, Yi), relative to that group as a whole. In a Channel Density (CD) Mode, for each trial measurement point the number of channels with non-zero signal activity is divided by the number of channels being considered, to produce a measure Di=CDi associated with the corresponding ith pixel: (Xi, Yi, Di). If Di is rendered as a color or an intensity, the resulting eye diagram includes a representation (the Di) at each (Xi, Yi) point of the degree of coincidence among, or a degree of similarity between, the channels in the group.